package com.wmx.mybatisstudy;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;

import javax.annotation.PreDestroy;

/**
 * @author wangmaoxiong
 */
@SpringBootApplication
public class MybatisStudyApplication {

    private static final Logger logger = LoggerFactory.getLogger(MybatisStudyApplication.class);

    /**
     * 获取启动类中 SpringApplication.run 方法返回的配置应用上下文
     * 为了操作方便，这里直接作为静态成员变量存储，需要使用的时候，直接 类名.变量名
     */
    public static ConfigurableApplicationContext configurableApplicationContext;

    public static void main(String[] args) {
        configurableApplicationContext = SpringApplication.run(MybatisStudyApplication.class, args);
    }

    /**
     * 服务关闭的时候会销毁 Bean，此时就会调用 bean 中 PreDestroy 标识的方法
     */
    @PreDestroy
    public void shutdownApp() {
        logger.info("应用关闭！");
    }

}
